aboutsummaryrefslogtreecommitdiff
path: root/resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml
diff options
context:
space:
mode:
Diffstat (limited to 'resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml')
-rw-r--r--resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml131
1 files changed, 131 insertions, 0 deletions
diff --git a/resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml b/resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml
new file mode 100644
index 00000000..a286772d
--- /dev/null
+++ b/resources/grub/patch/reproducible/[PATCH 1_3] mkstandalone: add argument --fixed-time to override mtime of files.eml
@@ -0,0 +1,131 @@
+Return-path: <grub-devel-bounces+info=gluglug.org.uk@gnu.org>
+Envelope-to: info@gluglug.org.uk
+Delivery-date: Fri, 04 Dec 2015 17:10:34 +0100
+Received: from lists.gnu.org ([2001:4830:134:3::11])
+ by web006.ispnoc.net with esmtps (TLSv1:AES256-SHA:256)
+ (Exim 4.85)
+ (envelope-from <grub-devel-bounces+info=gluglug.org.uk@gnu.org>)
+ id 1a4swM-00061k-EE
+ for info@gluglug.org.uk; Fri, 04 Dec 2015 17:10:34 +0100
+Received: from localhost ([::1]:41766 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <grub-devel-bounces+info=gluglug.org.uk@gnu.org>)
+ id 1a4sx5-0000S1-CN
+ for info@gluglug.org.uk; Fri, 04 Dec 2015 11:11:19 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:51210)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <lynxis@fe80.eu>) id 1a4swn-0000Rn-11
+ for grub-devel@gnu.org; Fri, 04 Dec 2015 11:11:02 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <lynxis@fe80.eu>) id 1a4swl-0001ff-9D
+ for grub-devel@gnu.org; Fri, 04 Dec 2015 11:11:00 -0500
+Received: from mail.base45.de ([80.241.61.77]:53014)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <lynxis@fe80.eu>) id 1a4swl-0001fa-2e
+ for grub-devel@gnu.org; Fri, 04 Dec 2015 11:10:59 -0500
+Received: from [2001:1a80:2259:2b1a:6042:6096:1de7:42c6] (helo=lazus.yip)
+ by mail.base45.de with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA256:128)
+ (Exim 4.82) (envelope-from <lynxis@fe80.eu>)
+ id 1a4swf-0004UO-9W; Fri, 04 Dec 2015 17:10:53 +0100
+From: Alexander Couzens <lynxis@fe80.eu>
+To: grub-devel@gnu.org
+Subject: [PATCH 1/3] mkstandalone: add argument --fixed-time to override mtime
+ of files
+Date: Fri, 4 Dec 2015 17:10:42 +0100
+Message-Id: <1449245444-17579-2-git-send-email-lynxis@fe80.eu>
+X-Mailer: git-send-email 2.6.3
+In-Reply-To: <1449245444-17579-1-git-send-email-lynxis@fe80.eu>
+References: <1449245444-17579-1-git-send-email-lynxis@fe80.eu>
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 80.241.61.77
+Cc: Alexander Couzens <lynxis@fe80.eu>
+X-BeenThere: grub-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+Reply-To: The development of GNU GRUB <grub-devel@gnu.org>
+List-Id: The development of GNU GRUB <grub-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/grub-devel>,
+ <mailto:grub-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <http://lists.gnu.org/archive/html/grub-devel>
+List-Post: <mailto:grub-devel@gnu.org>
+List-Help: <mailto:grub-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/grub-devel>,
+ <mailto:grub-devel-request@gnu.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Errors-To: grub-devel-bounces+info=gluglug.org.uk@gnu.org
+Sender: grub-devel-bounces+info=gluglug.org.uk@gnu.org
+
+mkstandalone adds several files to an archive. Doing this it uses the
+mtime to give these files a timestamp.
+--fixed-time <TIME_EPOCH> overrides these timestamps with a given.
+
+Replacing all timestamps with a specific one is required
+to get reproducible builds. See source epoch specification of
+reproducible-builds.org
+---
+ util/grub-mkstandalone.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c
+index 4907d44..047f0cd 100644
+--- a/util/grub-mkstandalone.c
++++ b/util/grub-mkstandalone.c
+@@ -30,6 +30,7 @@
+ #pragma GCC diagnostic error "-Wmissing-prototypes"
+ #pragma GCC diagnostic error "-Wmissing-declarations"
+
++static time_t fixed_time;
+ static char *output_image;
+ static char **files;
+ static int nfiles;
+@@ -48,6 +49,7 @@ static struct argp_option options[] = {
+ 0, N_("save output in FILE [required]"), 2},
+ {"format", 'O', N_("FILE"), 0, 0, 2},
+ {"compression", 'C', "xz|none|auto", OPTION_HIDDEN, 0, 2},
++ {"fixed-time", 't', N_("TIMEEPOCH"), 0, N_("Use a fixed timestamp to override mtime of all files. Time since epoch is used."), 2},
+ {0, 0, 0, 0, 0, 0}
+ };
+
+@@ -72,6 +74,7 @@ help_filter (int key, const char *text, void *input __attribute__ ((unused)))
+ static error_t
+ argp_parser (int key, char *arg, struct argp_state *state)
+ {
++ char *b;
+ if (key == 'C')
+ key = GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS;
+
+@@ -80,6 +83,14 @@ argp_parser (int key, char *arg, struct argp_state *state)
+
+ switch (key)
+ {
++ case 't':
++ fixed_time = strtoll (arg, &b, 10);
++ if (*b !='\0') {
++ printf (_("invalid fixed time number: %s\n"), arg);
++ argp_usage (state);
++ exit (1);
++ }
++ break;
+
+ case 'o':
+ if (output_image)
+@@ -192,7 +203,8 @@ add_tar_file (const char *from,
+ if (grub_util_is_special_file (from))
+ return;
+
+- mtime = grub_util_get_mtime (from);
++ /* use fixed_time if given for mtime */
++ mtime = fixed_time != -1 ? fixed_time : grub_util_get_mtime (from);
+
+ optr = tcn = xmalloc (strlen (to) + 1);
+ for (iptr = to; *iptr == '/'; iptr++);
+--
+2.6.3
+
+
+_______________________________________________
+Grub-devel mailing list
+Grub-devel@gnu.org
+https://lists.gnu.org/mailman/listinfo/grub-devel